using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using AvaProvi;
using Brain;
namespace AvaProvi
{
    public partial class ctlMedidas : AvaProvi.ControlBase
    {
        VSimbolo vs;
        Validadora val;
        public ctlMedidas()
            : base()
        {
            InitializeComponent();
            ActualizaPanel();
        }

        public override void ActualizaDatos()
        {
            base.ActualizaDatos();
            this.bsMedidas.EndEdit();
            clsAvaluo_CRN.AvaluoActual.Guardar();
            this.ActualizaPanel();
        }

        public override void ActualizaPanel()
        {
            this.bsMedidas.DataSource = clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas;
            this.bsTerreno.DataSource = clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno;
            this.bsMedidas.ResetBindings(false);
            this.bsTerreno.ResetBindings(false);
            if (clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Inmueble.RegimenDePropiedad != "Condominal")
                this.colindanciasPrivativasTextBox.Enabled = false;
            ActivaGrid();
        }

        private void colindanciasDataGridView_Click(object sender, EventArgs e)
        {
            if (clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.Colindancias.Count == 0)
            {
                CreaColindancia();
            }
        }

        private void CreaColindancia()
        {
                clsColindancia_CRN objColindancia = new clsColindancia_CRN(clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas);
                clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.Colindancias.Add(objColindancia);
                bsMedidas.ResetBindings(false);
        }

        private void gvColindancias_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                CreaColindancia();
            }
        }

        private void gvColindancias_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            clsColindancia_CRN objColindanciaEliminada = (clsColindancia_CRN)(e.Row.DataBoundItem);
            objColindanciaEliminada.EsEliminado = true;
            objColindanciaEliminada.Guardar();
        }

        private void gvSuperficies_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            this.FormularioContenedor.Refresh();
        }

        private void btnUsarImagen_Click(object sender, EventArgs e)
        {
            clsFoto_CRN objFoto = new clsFoto_CRN(clsAvaluo_CRN.AvaluoActual.Inmueble.Fotos, "Colindancias");
            objFoto.Imagen = clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.ImagenColindancias.Imagen;
            objFoto.Observaciones = clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.ImagenColindancias.Observaciones;
            frmColindancias objfrmColindancias = new frmColindancias();
            objfrmColindancias.objFoto = objFoto;
            if (objfrmColindancias.ShowDialog()== DialogResult.OK)
            {
                clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.ImagenColindancias.Imagen = objFoto.Imagen;
                clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.ImagenColindancias.Observaciones = objFoto.Observaciones;
                this.bsMedidas.ResetBindings(false);
                ActivaGrid();
            }
        }

        private void ActivaGrid()
        {
            if (clsAvaluo_CRN.AvaluoActual.Inmueble.Terreno.Medidas.ImagenColindancias.Imagen.Length == 10)
                this.gvColindancias.Enabled = true;
            else
                this.gvColindancias.Enabled = false;
        }

        private void gvColindancias_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            TextBox txt = (TextBox)e.Control;
            txt.KeyPress += validar_Keypress_col;
        }
        private void validar_Keypress_col(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            //  string prueba = gvColindancias.Rows[gvColindancias.CurrentCell.RowIndex].Cells[gvColindancias.CurrentCell.ColumnIndex].x
            int columna = gvColindancias.CurrentCell.ColumnIndex;
            if (columna == 1)
            {
                char caracter = e.KeyChar;
                // referencia a la celda   
                TextBox txt = (TextBox)sender;
                vs = new VSimbolo();
                e.Handled = vs.esDecimal(caracter, (txt.Text).Trim());

            }
        }
        private void gvColindancias_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            string dato = e.FormattedValue.ToString();                      
             val = new Validadora();
            if (gvColindancias.Columns[e.ColumnIndex].Index == 1)
            {
                if (!val.esReal(dato))
                {
                   e.Cancel = true;
                }
            }          
        }

        private void gvSuperficies_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            TextBox txt = (TextBox)e.Control;
            txt.KeyPress += validar_Keypress_sup; 
        }
        private void validar_Keypress_sup(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            int columna = gvSuperficies.CurrentCell.ColumnIndex;
            if (columna == 0)
            {
                char caracter = e.KeyChar;
                // referencia a la celda   
                TextBox txt = (TextBox)sender;

                vs = new VSimbolo();
                e.Handled = vs.esDecimal(caracter, (txt.Text).Trim());
            }
        }
        private void gvSuperficies_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            string dato = e.FormattedValue.ToString();
            val = new Validadora();
            if (gvSuperficies.Columns[e.ColumnIndex].Index == 1)
            {
                if (!val.esReal(dato))
                {
                    e.Cancel = true;
                }
            }
        }

        private void frenteLoteTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            vs = new VSimbolo();
            e.Handled = vs.esDecimal(e.KeyChar, (frenteLoteTextBox.Text).Trim());
        }


    }
}
